package com.eastfair.venuebooking.api;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.eastfair.boot.request.PageParams;
import com.eastfair.core.base.R;
import com.eastfair.venueservice.dto.ArrangementManageDTO;
import com.eastfair.venueservice.vo.ArrangementManageVO;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;

/**
 * The interface Arrangement manage feign.
 *
 * @Author lyw
 * @Date 2022 /9/9 11:41
 */
@FeignClient(value = "venue-services-manage/arrangementManage")
public interface ArrangementManageFeign {

    /**
     * 查询布撤展管理列表分页
     *
     * @param params the params
     * @return r r
     */
    @ApiOperation(value = "查询布撤展管理列表分页")
    @PostMapping(value = "/query/for/homeCheck")
    R<Page<ArrangementManageVO>> queryForHomeCheck(@RequestBody PageParams<ArrangementManageDTO> params);

    /**
     * 主场查询布撤展管理记录.
     *
     * @param params the params
     * @return the r
     */
    @PostMapping(value = "/query/for/home")
    R<Page<ArrangementManageVO>> queryForHome(@RequestBody PageParams<ArrangementManageDTO> params);

    /**
     * 查询布撤展管理详情
     *
     * @param arrangementManageDTO the arrangement manage dto
     * @return r arrangement manage
     */
    @ApiOperation(value = "查询布撤展管理详情")
    @PostMapping(value = "/queryArrangementManageInfo")
    R<ArrangementManageVO> getArrangementManage(@RequestBody ArrangementManageDTO arrangementManageDTO);

    /**
     * 保存布撤展管理
     *
     * @param arrangementManageDTO the arrangement manage dto
     * @return r r
     */
    @ApiOperation(value = "保存布撤展管理")
    @PostMapping(value = "/submit/for/homeCheck")
    R<Boolean> submitForHomeCheck(@RequestBody ArrangementManageDTO arrangementManageDTO);

    /**
     * 修改布撤展管理
     *
     * @param arrangementManageDTO the arrangement manage dto
     * @return r r
     */
    @ApiOperation(value = "修改布撤展管理")
    @PostMapping(value = "/updateArrangementManageInfo")
    R<Boolean> updateArrangementManage(@RequestBody ArrangementManageDTO arrangementManageDTO);


    /**
     * 删除布撤展
     *
     * @param id the id
     * @return r r
     */
    @ApiOperation(value = "删除布撤展")
    @GetMapping(value = "/delArrangementManageInfo/{id}")
    R<Boolean> delArrangementManage(@PathVariable(value ="id") Long id);

}
